namespace RFS.Domain.PaiShi.Accounting
{
    public struct Account
    {
        public Account(string code, string name , string fp="",bool hasChildren=false)
        {
            Code = code;
            Name = name;

            FullPath = string.IsNullOrEmpty(fp)  ? name: fp;

            HasChildren = hasChildren;
        }

        public string Code { get; set; }
        public string Name { get; set; }
        public string FullPath { get; set; }
        public bool HasChildren { get; set; }   
        
        
     
        /*
         * 小企业会计准备会计科目编码列表通常包括以下几个主要类别和科目：

1. **资产类科目**：
   - 银行存款：1002
   - 应收账款：1122
   - 预付账款：1131
   - 存货：1201
   - 固定资产：1401
   - 在建工程：1403
   - 无形资产：1501
   - 长期待摊费用：1502

2. **负债类科目**：
   - 短期借款：2101
   - 应付账款：2122
   - 预收账款：2131
   - 应付职工薪酬：2201
   - 应交税费：2221
   - 长期借款：2401
   - 长期应付款：2402

3. **所有者权益类科目**：
   - 实收资本（或股本）：3001
   - 资本公积：3101
   - 盈余公积：3201
   - 本年利润：3001
   - 利润分配：3202

4. **成本类科目**：
   - 生产成本：4001
   - 制造费用：4002
   - 劳务成本：4003
   - 研发支出：4004

5. **损益类科目**：
   - 主营业务收入：6001
   - 其他业务收入：6002
   - 投资收益：6101
   - 营业外收入：6201
   - 主营业务成本：6002
   - 其他业务成本：6003
   - 营业税金及附加：6401
   - 销售费用：5601
   - 管理费用：5701
   - 财务费用：5801
   - 营业外支出：6202
   - 所得税费用：6501

         */
        public static Account KCSP { set; get; }=new Account("1405", "库存商品");
        public static Account YHCK { set; get; }=new Account("1002", "银行存款");
        public static Account YSZK { set; get; }=new Account("1122", "应收账款");
        public static Account YFZK { set; get; }=new Account("2202", "应付账款");
        public static Account ZYYWSR { set; get; }=new Account("6001", "主营业务收入");
        public static Account ZYYWCB { set; get; }=new Account("6002", "主营业务成本");

        public static Account XSFY { set; get; }=new Account("5601", "销售费用",hasChildren: true );
        public static Account XSFY_PSXH { set; get; }=new Account("560101", "拍市销毁","销售费用-拍市销毁");
        public static Account XSFY_YSCY { set; get; }=new Account("560102", "验收差异","销售费用-验收差异");
        
        public static Account BNLR { set; get; }=new Account("3001", "本年利润");
 
        
    }
}